The present invention relates to publishing of data such as, for example, on information networks such as the Internet, and, more particularly, to systems and methods for publishing data in association with a cache wherein the data has expiration times associated therewith.
The Internet or World Wide Web (WWW or the Web) as it exists today, allows data to be cached at various places in the network, such as at proxy servers. Objects which are cached at a proxy server may have expiration times associated with them indicating when they expire. A key problem with caching objects on the Web is that there is often no way to accurately predict in advance when an object should expire. Therefore, it is possible for a proxy cache to contain pages from the same Web site which are inconsistent with each other.
For example, suppose that cached page p1 contains the result from a sporting event with an expiration time of 8:30. At 8:15, a new page p2 is cached at the same proxy server with an updated result of the same sporting event. Between 8:15 and 8:30, the cache may be serving copies of p1 and p2 which are inconsistent with each other. It may be preferable not to cache p2 until the cached version of p1 is invalidated or updated.
Thus, it would be highly advantageous to provide systems and methods for publishing data consistently, for example, in remote caches wherein such systems and methods would be compatible with existing information networks such as the Web and would not require Web sites to be able to push data or invalidation/update messages to remote caches.
The present invention provides systems and methods for publishing objects, for example, on an information network, such that expiration-sensitive data may be consistently cached. Such inventive systems and methods are compatible with existing information networks such as the Web and do not require Web sites to be able to push data or invalidation/update messages to remote caches. It is to be understood that the term xe2x80x9cexpiration-sensitive dataxe2x80x9d refers to available data, for example, data on an information network, that has an expiration time (e.g., time after which the data is no longer valid) associated therewith.
In one aspect of the inventions systems and methods for publishing objects (e.g., pages and/or fragments)include assigning expiration times to different versions of objects and determining a plurality of objects which should be published atomically. Then, the invention includes computing updated versions of the plurality of objects and atomically publishing the updated versions wherein the updated versions are not available until after expiration times corresponding to previously published versions of at least one of the plurality of objects (e.g., a cached object) have elapsed. The term xe2x80x9catomicxe2x80x9d refers to the publication of the plurality of objects in a single action, that is, the objects in the plurality are published together.
In another aspect of the invention, systems and methods for publishing objects include caching one or more objects of a first version to be served to a client upon request, for example, via an information network. Further, a release time is assigned to a plurality (e.g., a first bundle) of objects of a second version wherein the release time is no earlier than a time value when each of the cached objects of the first version has expired. Lastly, the first bundle of objects is atomically published in accordance with the assigned release time. Advantageously, clients attempting to access related cached objects over the information network will not be presented with versions of related objects that are inconsistent with one another.
In yet another aspect of the invention, the systems and methods may include the step of combining the first bundle of objects and at least a second bundle of objects and assigning a release time to the combination of the first and second bundles, the release time being no earlier than the maximum release time respectively assigned to the constituent bundles. Then, the first and second bundles are atomically published in accordance with the maximum release time. The publication of such compound bundles reduces or eliminates delays that may be associated with object publication. In a further aspect of the invention, the combination of bundles may be subject to certain constraints that are set to ensure consistency of cached data.
In still a further aspect of the invention, the systems and methods may include the steps of assigning release times to more than one bundle of objects waiting to be published and atomically publishing the bundle having the lowest release time that is consistent with preceding bundles of objects. In this way, the publication order of non-combined bundles may be changed in order to get content published more efficiently.